/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.hk.shop.entity.shop;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.google.common.collect.Lists;
import com.thinkgem.jeesite.common.persistence.DataEntity;
import com.thinkgem.jeesite.common.utils.excel.annotation.ExcelField;
import com.thinkgem.jeesite.modules.hk.shop.entity.order.HkShopUserOrderDetail;
import com.thinkgem.jeesite.modules.hk.sys.entity.user.HkUser;
import com.thinkgem.jeesite.modules.sys.entity.Area;
import org.hibernate.validator.constraints.Length;

import java.util.Date;
import java.util.List;

/**
 * 用户订单管理Entity
 *
 * @author 罗天文
 * @version 2018-08-22
 */
public class HkShopUserOrderWithdraw extends DataEntity<HkShopUserOrderWithdraw> {

    private static final long serialVersionUID = 1L;
    private String ordernumber;        // 订单号
    private String addressid;        // 地址
    private String productIntegral;        // 产品乐币
    private Date paytime;        // 支付时间
    private String freightIntegral;        // 快递乐币
    private String integral;        // 乐币
    private HkUser hkUserId;        // 自媒体商户id
    private String paytype;        // 支付类型
    private String state;        // 订单状态
    private Date selltime;        // 售出时间
    private Date limittime;        // 限制时间
    private String afterstate;        // 售后状态
    private Date confirmdate;        // 成交时间
    private HkUser user;        // 用户id
    private String consignee;        // 收货人
    private String phone;        // 手机号
    private Area area;        // 区
    private String address;        // 地址
    private Area province;        // 省
    private Area city;        // 市
    private String reason;        // 关闭订单原因
    private String courier;        // 快递公司
    private String couriernumber;        // 快递单号
    private Date delivertime;        // 发货时间
    private Date beginCreateDate;        // 开始 下单时间
    private Date endCreateDate;        // 结束 下单时间
    private List<HkShopUserOrderDetail> hkShopUserOrderDetailList = Lists.newArrayList();        // 子表列表
    private HkUserShop shop;  //店铺
    private String isWithdraw;//提现状态
    private String payMoney; //支付金额

    public HkShopUserOrderWithdraw() {
        super();
    }

    public HkShopUserOrderWithdraw(String id) {
        super(id);
    }

    @ExcelField(title = "订单号", align = 2)
    @Length(min = 0, max = 20, message = "订单号长度必须介于 0 和 20 之间")
    public String getOrdernumber() {
        return ordernumber;
    }

    public void setOrdernumber(String ordernumber) {
        this.ordernumber = ordernumber;
    }

    @ExcelField(title = "收货地址", align = 2)
    @Length(min = 0, max = 32, message = "地址长度必须介于 0 和 32 之间")
    public String getAddressid() {
        return addressid;
    }

    public void setAddressid(String addressid) {
        this.addressid = addressid;
    }

    @ExcelField(title = "商品乐币", align = 2)
    @Length(min = 0, max = 11, message = "产品乐币长度必须介于 0 和 11 之间")
    public String getProductIntegral() {
        return productIntegral;
    }

    public void setProductIntegral(String productIntegral) {
        this.productIntegral = productIntegral;
    }

    @ExcelField(title = "支付时间", align = 2, sort = 10)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getPaytime() {
        return paytime;
    }

    public void setPaytime(Date paytime) {
        this.paytime = paytime;
    }

    @ExcelField(title = "快递费用", align = 2)
    @Length(min = 0, max = 11, message = "快递乐币长度必须介于 0 和 11 之间")
    public String getFreightIntegral() {
        return freightIntegral;
    }

    public void setFreightIntegral(String freightIntegral) {
        this.freightIntegral = freightIntegral;
    }

    @ExcelField(title = "乐币", align = 2, sort = 10)
    @Length(min = 0, max = 11, message = "乐币长度必须介于 0 和 11 之间")
    public String getIntegral() {
        return integral;
    }

    public void setIntegral(String integral) {
        this.integral = integral;
    }

    @ExcelField(title = "用户编号", align = 2)
    public HkUser getHkUserId() {
        return hkUserId;
    }

    public void setHkUserId(HkUser hkUserId) {
        this.hkUserId = hkUserId;
    }

    @ExcelField(title = "支付方式", align = 2)
    @Length(min = 0, max = 50, message = "支付类型长度必须介于 0 和 50 之间")
    public String getPaytype() {
        return paytype;
    }

    public void setPaytype(String paytype) {
        this.paytype = paytype;
    }

    @ExcelField(title = "订单状态", align = 2, dictType = "hk_shop_order_state")
    @Length(min = 0, max = 2, message = "订单状态长度必须介于 0 和 2 之间")
    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    @ExcelField(title = "售出时间", align = 2, sort = 10)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getSelltime() {
        return selltime;
    }

    public void setSelltime(Date selltime) {
        this.selltime = selltime;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getLimittime() {
        return limittime;
    }

    public void setLimittime(Date limittime) {
        this.limittime = limittime;
    }

    @ExcelField(title = "售后状态", align = 2, dictType = "hk_shop_order_state")
    @Length(min = 0, max = 3, message = "售后状态长度必须介于 0 和 3 之间")
    public String getAfterstate() {
        return afterstate;
    }

    public void setAfterstate(String afterstate) {
        this.afterstate = afterstate;
    }

    @ExcelField(title = "成交时间", align = 2, sort = 11)
    @JsonFormat(pattern = "yyyy-MM-dd")
    public Date getConfirmdate() {
        return confirmdate;
    }

    public void setConfirmdate(Date confirmdate) {
        this.confirmdate = confirmdate;
    }

    public HkUser getUser() {
        return user;
    }

    public void setUser(HkUser user) {
        this.user = user;
    }

    @ExcelField(title = "收货人", align = 2)
    @Length(min = 0, max = 100, message = "收货人长度必须介于 0 和 100 之间")
    public String getConsignee() {
        return consignee;
    }

    public void setConsignee(String consignee) {
        this.consignee = consignee;
    }

    @ExcelField(title = "收货人电话", align = 2)
    @Length(min = 0, max = 20, message = "手机号长度必须介于 0 和 20 之间")
    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public Area getArea() {
        return area;
    }

    public void setArea(Area area) {
        this.area = area;
    }

    @ExcelField(title = "收货地址", align = 0)
    @Length(min = 0, max = 200, message = "地址长度必须介于 0 和 200 之间")
    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public Area getProvince() {
        return province;
    }

    public void setProvince(Area province) {
        this.province = province;
    }

    public Area getCity() {
        return city;
    }

    public void setCity(Area city) {
        this.city = city;
    }

    @Length(min = 0, max = 200, message = "关闭订单原因长度必须介于 0 和 200 之间")
    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    @ExcelField(title = "快递公司", align = 2)
    @Length(min = 0, max = 50, message = "快递公司长度必须介于 0 和 50 之间")
    public String getCourier() {
        return courier;
    }

    public void setCourier(String courier) {
        this.courier = courier;
    }

    @ExcelField(title = "快递单号", align = 2)
    @Length(min = 0, max = 50, message = "快递单号长度必须介于 0 和 50 之间")
    public String getCouriernumber() {
        return couriernumber;
    }

    public void setCouriernumber(String couriernumber) {
        this.couriernumber = couriernumber;
    }

    @ExcelField(title = "发货时间", align = 2)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getDelivertime() {
        return delivertime;
    }

    public void setDelivertime(Date delivertime) {
        this.delivertime = delivertime;
    }

    @ExcelField(title = "开始下单时间", align = 2)
    public Date getBeginCreateDate() {
        return beginCreateDate;
    }

    public void setBeginCreateDate(Date beginCreateDate) {
        this.beginCreateDate = beginCreateDate;
    }

    @ExcelField(title = "结束下单时间", align = 2)
    public Date getEndCreateDate() {
        return endCreateDate;
    }

    public void setEndCreateDate(Date endCreateDate) {
        this.endCreateDate = endCreateDate;
    }

    public List<HkShopUserOrderDetail> getHkShopUserOrderDetailList() {
        return hkShopUserOrderDetailList;
    }

    public void setHkShopUserOrderDetailList(List<HkShopUserOrderDetail> hkShopUserOrderDetailList) {
        this.hkShopUserOrderDetailList = hkShopUserOrderDetailList;
    }

    public HkUserShop getShop() {
        return shop;
    }

    public void setShop(HkUserShop shop) {
        this.shop = shop;
    }

    public String getIsWithdraw() {
        return isWithdraw;
    }

    public void setIsWithdraw(String isWithdraw) {
        this.isWithdraw = isWithdraw;
    }

    public String getPayMoney() {
        return payMoney;
    }

    public void setPayMoney(String payMoney) {
        this.payMoney = payMoney;
    }
}